package com.aliyun.messagemgt.application.service;


import com.aliyun.messagemgt.dto.msg.MessageRecordDTO;
import com.aliyun.messagemgt.dto.msg.MessageRecordQry;
import com.aliyun.messagemgt.dto.query.MessageRecordQueryDTO;
import com.aliyun.messagemgt.dto.query.MsgHandleLogQuery;
import com.aliyun.messagemgt.dto.query.MsgPushResultsQuery;
import com.aliyun.messagemgt.dto.query.MyMsgQueryDTO;
import com.aliyun.messagemgt.dto.vo.DepVo;
import com.aliyun.messagemgt.dto.vo.MessageRecordReturnVO;
import com.aliyun.messagemgt.dto.vo.MsgPushResultsQueryVO;
import com.aliyun.messagemgt.dto.vo.MyMsgVO;
import com.github.pagehelper.Page;
import com.github.pagehelper.PageInfo;

import java.util.List;

/**
 * @author
 * @date
 */
public interface MessageRecordService {
	/**
	 * 查询消息列表
	 * @param messageRecordQueryDTO
	 * @return
	 */
	Page<MessageRecordReturnVO> selectMessageRecord(MessageRecordQueryDTO messageRecordQueryDTO);

	/**
	 * 根据所有者部门索取消息列表
	 * @param messageRecordQueryDTO
	 * @return
	 */
	List<DepVo> messageListOwnerDept(MessageRecordQueryDTO messageRecordQueryDTO);

	/**
	 * 查看自己收到的消息
	 * @param myMsgQueryDTO
	 * @return
	 */
	Page<MyMsgVO> messageListMyMsgs(MyMsgQueryDTO myMsgQueryDTO);

	/**
	 * 对外消息查询接口
	 * @param msgPushResultsQuery
	 * @return
	 */
	Page<MsgPushResultsQueryVO> listMsgPushResults(MsgPushResultsQuery msgPushResultsQuery);

	/**
	 * 对外消息已读未读更新接口
	 * @param msgHandleLogQuery
	 * @return
	 */
	int updateMsgHandleLogStateRead(MsgHandleLogQuery msgHandleLogQuery);
	/**
	 * 消息归档
	 * @date 2019-09-11 10:20
	 * @param
	 * @return void
	 */
	void messageArchive();

	Long countMessageRecordQuery(MessageRecordQueryDTO messageRecordQueryDTO);

	PageInfo<MessageRecordDTO> page(MessageRecordQry messageRecordQry);
}
